package my.graduation.task;

import my.graduation.result.Result;
import my.graduation.service.ExaminationScheduleService;
import my.graduation.service.RegistrationScheduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

/**
 * @Author: RavenLyn
 * @Date: 2025-02-28
 */
@Component
public class ExaminationScheduleTask {
    @Autowired
    private ExaminationScheduleService examScheService;

    /**
     * 定时任务，每日晚上8点整触发，修改过期检查排班状态为 3
     */
//    @Scheduled(cron = "0 5 16 * * ?") //每天晚上 20 点 0 分 0 秒 触发一次任务
    @Transactional
    @Scheduled(cron = "0 0 20 * * ?") //每天晚上 20 点 0 分 0 秒 触发一次任务
    public void handleExpiredExamSche(){
        examScheService.handleExpired();
        System.out.println("已自动处理过期检查排班");
    }

    /**
     * 定时任务，每周日晚上 8 点 0 分 0 秒 触发，自动生成检查排班
     */
    @Transactional
    @Scheduled(cron = "0 2 20 * * 7") //每周日晚上 8 点 2 分 0 秒 触发一次任务
    public void handleGenerateExamSche(){
        Result i = examScheService.generate();
        if(i.getCode() == 200){
            System.out.println("已自动生成检查排班");
        }else {
            System.out.println("生成检查排班失败");
        }
    }
}
